import java.util.*;
import  java.math.*;
public class Test1 {
    public static void main12(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n= scanner.nextInt();
        int[][] ints=new int[n][n];
        int sum=0;
        for(int i=1;i<=n*n;i++){
            sum+=i;
        }
        sum=sum/n;
        ints[(n-1)/2][0]=1;

    }
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n= scanner.nextInt();
        int[][] ints=new int[n][n];
        int det=1;
        int r=n;
        int c=n-1;
        int a=-1;
        int b=0;
        int sym=-1;
        while (det!=n*n+1){
            sym*=-1;
            int sum=1;
            while (sum<=r){
                if(sym==1) a++;
                else a--;
                sum++;
                ints[b][a]=det++;
            }
            r--;
            sum=1;
            while (sum<=c){
                if(sym==1) b++;
                else b--;
                sum++;
                ints[b][a]=det++;
            }
            c--;
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                System.out.printf("%-4d",ints[i][j]);
            }
            System.out.println();
        }
    }
    public static void main10(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n=scan.nextInt();
        int []num=new int[n];
        int sum=0;
        for(int i=0;i<n;i++){
            num[i]=scan.nextInt();
        }
        Arrays.sort(num);
        int max=num[n-1];
        for(int i=0;i<n-1;i++){
            sum+=num[i];
        }
        if(sum>max) System.out.println(2*sum);
        else System.out.println(2*max-1);
        scan.close();
    }
    public static void main9(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        long l=scan.nextLong();
        long r=scan.nextLong();
        long sum=0;
        final long MOD=1000000007;
        for(long i=l;i<=r-1;i++){
            sum+=(Math.pow(i,i)%MOD)*(Math.pow(i+1,i+1)%MOD);
            sum%=MOD;
        }
        System.out.println(sum);
        scan.close();
    }
    public static void main8(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n=scan.nextInt();
        int m=scan.nextInt();
        if(n<2) return;
        int[][] ints=new int[n][2];
        int[] indexS=new int[n];
        ArrayList<Integer> arrayList=new ArrayList<>();
        for(int i=0;i<n;i++){
            ints[i][0]=scan.nextInt();
            ints[i][1]=scan.nextInt();
        }
        for(int i=0;i<n;i++){
            int sum=0;


            for(int j=0;j<n;j++){
                boolean det1=ints[i][0]<=ints[j][0]&&ints[j][0]<=ints[i][1];
                boolean det2=ints[i][0]<=ints[j][1]&&ints[j][1]<=ints[i][1];
                boolean det3=ints[i][0]>=ints[j][0]&&ints[j][1]>=ints[i][1];
                if((det1||det2||det3)&&i!=j) sum++;
            }
            System.out.println(sum);
        }
//        for(int i=0;i<n;i++){
//            indexS[i]=i;
//        }
//        for(int i=n-1;i>0;i--){
//            for(int j=0;j<i;j++){
//                if(ints[j][0]>ints[j+1][0]){
//                    int[] tmp;
//                    tmp=ints[j];
//                    ints[j]=ints[j+1];
//                    ints[j+1]=tmp;
//                    int a;
//                    a=indexS[j];
//                    indexS[j]=indexS[j+1];
//                    indexS[j+1]=a;
//                }
//            }
//        }
//        for(int i=0;i<n;i++){
//            int sum=0;
//            int index=0;
//            while (index!=n&&ints[index][0]<=ints[i][1]){
//                if(ints[index][1]>=ints[i][0]&&index!=i)
//                sum++;
//                index++;
//                //if(index==n||ints[index][0]>ints[i][1]) break;
//            }
//            arrayList.add(sum);
//        }
//        for(int i=0;i<n;i++)
//            System.out.println(arrayList.get(indexS[i]));
    }
//    5 6
//            1 1
//            1 3
//            1 6
//            3 4
//            5 6
    public static void main7(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int n=scan.nextInt();
        int []num=new int[n];
        int sum=0;
        for(int i=0;i<n;i++){
            num[i]=scan.nextInt();
        }
        Arrays.sort(num);
        for(int i=0;i<n-1;i++){
            sum=sum+num[i];
        }
        if(num[n-1]-sum>1){
            System.out.println(sum*2+1+(num[n-1]-1-sum)*2);
        }else {
            System.out.println(sum+num[n-1]);
        }
        scan.close();
    }
    public static void main5(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n= scanner.nextInt();
        int[] nums=new int[n];
        int time=0;
        for(int i=0;i<n;i++){
            nums[i]=scanner.nextInt();
        }
        Arrays.sort(nums);
        System.out.println(Arrays.toString(nums));
        int max=nums[nums.length-1];
    }
    public static void main6(String[] args) {
        Scanner scan = new Scanner(System.in);
        int t=scan.nextInt();
        ArrayList<Integer> arrayList=new ArrayList<>();
        while (t/2!=0){
            if(t%2==1) arrayList.add(1);
            else arrayList.add(0);
            t=t/2;
        }
        if(t%2==1) arrayList.add(1);
        else arrayList.add(0);
        for(int i=arrayList.size()-1;i>=0;i--){
            System.out.print(arrayList.get(i));
        }
    }
    public static void main4(String[] args) {
        Scanner scan = new Scanner(System.in);
        int t=scan.nextInt();
        for(int i=1;i<=t;i++){
            int n=scan.nextInt();
            int m=scan.nextInt();
            if(n%m!=0) break;
            String str=n+"";
            int len=str.length();

        }
        scan.close();
    }
    public static void main3(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n= scanner.nextInt();
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=scanner.nextInt();
        }
        int sum=nums[0]^nums[1];
        for(int i=2;i<nums.length;i++){
            sum^=nums[i];
        }
        if(sum==0)
        System.out.println("YES");
        else System.out.println("NO");
    }
    public static void main2(String[] args) {
    long   det=1;
        long a=20;
        long b=24;
        double sum=0.000001;
        while (det<900009999.0){
            if(det%20==0||det%24==0){
                System.out.println(det+" ");
                sum+=0.000001;
                if(sum==202420.242024) break;
            }
            det+=1;
        }
        //System.out.println(det);
    }

    public static void main1(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n= scanner.nextInt();
        int target1=scanner.nextInt();
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=scanner.nextInt();
        }
        int len=11111111;
        int left=0;
        int right=0;
        int sum=0;
//        while (right<=n-1) {
//            int sum = 0;
//            for(int i=left;i<=right;i++){
//                sum+=nums[i];
//            }
//            if(sum>=target1) {
//                len = right - left+1 <= len ? right - left+1 : len;
//                left++;
//            }
//            else right++;
//        }
//        if(right>n-1)  System.out.println(0);
        for(;right<=n-1;right++){
            sum+=nums[right];
            while (sum>=target1){
                len=right - left+1 <= len ? right - left+1 : len;
                sum-=nums[left++];
            }
        }
        System.out.println(len);
    }
}
